//用来存储动态路由导航
//导入请求的接口方法
//import api from '@/api/index'
import {permission} from '@/api/index'
//导入前端完整的路由信息
import { menu } from '@/router/menu'
//导入路由和基本路由信息,用于往这个路由里面添加动态路由
import router,{ baseRouters} from '@/router/index'
//导入匹配前后端菜单导航的方法
import { rulesMenu } from "@/utils/common"
import { cloneDeep } from 'lodash'

export default {
    namespaced: true,//开启命名空间
    state: {
        //定义动态导航容器--存储动态导航
        dyMenuList:[],//数组
    },
    mutations: {
       //设置菜单导航
       setMenuList(state,paylod){
         state.dyMenuList=paylod
       },
       //清空菜单导航
       removeMenuList(state){
        state.dyMenuList=[]
       }
    },
    actions:{
        //定义请求动态路由信息的接口的方法 ---参数 token
        //从menu.js 菜单模块获取login.js中的token数据
        async getMenuList({commit,rootState}){
            console.log('rootState.login.userinfo.token',rootState.login.userinfo.token)
            let res = await permission({token:rootState.login.userinfo.token})
            console.log('后端返回的导航菜单列表：',res.data)
            console.log('前端定义的导航菜单列表：',menu)
            //根据后端返回的导航菜单列表， 匹配前端的真实路由
            //定义一个方法处理数组， 返回匹配好的菜单导航
            
            let myMenu=rulesMenu(menu,res.data.data);
            console.log('处理好的菜单导航----->',myMenu)
            //存储动态导航菜单
            commit('setMenuList',myMenu);
            //动态路由拼到baseRoutes中去
            let myBaseRoutes=cloneDeep(baseRouters)
            myBaseRoutes[0].children.push(...myMenu)

            console.log('baseRoutes......',myBaseRoutes)
            //添加到路由界面中取
            return myBaseRoutes
        }
    }


}